package com.composite.pattern;

import java.util.ArrayList;
import java.util.List;

/**
 * @author chenchen
 * @description
 * @date 2023/11/10 13:44
 */
public class Company extends Component {

    //管理公司下的部门，也就是公司下的子节点
    public Company(String name, String describe) {
        super(name, describe);
    }

    private final List<Component> components = new ArrayList<>();

    /**
     * @description 实现显示方法
     * @author chenchen
     * @date 2023/11/10 13:52
     * @param
     * @return void
     */
    @Override
    public void show() {
        System.out.println("名称：" + getName() + "，描述：" + getDescribe());
        for (Component component : components) {
            component.show();
        }
    }

    /**
     * @description 重写添加方法
     * @author chenchen
     * @date 2023/11/10 13:51
     * @param component
     * @return void
     */
    @Override
    public void add(Component component) {
        components.add(component);
    }

    /**
     * @description 重写删除方法
     * @author chenchen
     * @date 2023/11/10 13:52
     * @param component
     * @return void
     */
    @Override
    public void remove(Component component) {
        components.remove(component);
    }

}
